'
Нуртдинов Э.Э.
НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО *
Аннотация:
статья посвящена процессу автоматизированной сборки, тестирования и развертывания программ. В ней описывается необходимость подхода, использующего автоматизированные конвейеры для доставки изменений на серверные контуры
Ключевые слова:
конвейер, тестирование, автоматизация, развертывание, доставка приложений
УДК 004.453.4
Нуртдинов Э.Э.
магистрант 2 курса, кафедра автоматизированных систем управления
Уфимский государственный авиационный технический университет
(г. Уфа, Россия)
НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО
Аннотация: статья посвящена процессу автоматизированной сборки, тестирования и развертывания программ.
В ней описывается необходимость подхода, использующего автоматизированные конвейеры для доставки изменений на серверные контуры.
Ключевые слова: конвейер, тестирование, автоматизация, развертывание, доставка приложений.
Автоматизированный шаблон развёртывания
Наиболее важная проблема, с которой сталкиваются разработчики при развертывании ПО, состоит в следующем: как в кратчайший срок предоставить пользователям очередную версию приложения после добавления в него нового средства? Новые полезные идеи появляются весьма часто. Кроме того, после обнаружения ошибки в приложении необходимо как можно быстрее устранить ее и предоставить пользователям исправленную версию. В настоящий момент существует много методик развертывания ПО, однако они посвящены, главным образом, управлению требованиями к развертыванию и влиянию этих требований на разработку приложения. Что же происходит, когда требования определены, решение найдено, а приложение создано и протестировано? Как объединить эти этапы таким образом, чтобы весь процесс был как можно более быстрым и надежным? Как организовать взаимодействие разработчиков, тестировщиков и администраторов наиболее эффективным образом? [1, С. 24]
Главный шаблон называется конвейером развертывания. В сущности, это реализация автоматизированных процессов сборки, установки, тестирования и поставки релиза. Конвейеры развертывания могут быть организованы по-разному, в зависимости от технологических особенностей поставки релизов, однако фундаментальные принципы непрерывного развертывания одинаковы в любых ситуациях. Пример конвейера развертывания приведен на рис. 1.
Скорость и качество сборки продукта — главные конкурентные преимущества в разработке программного обеспечения. Поэтому на смену архаическим моделям программирования, таким как императивная, структурная или модульная, начала приходить новая концепция CI/CD — Continuous integration и Continuous delivery – непрерывная интеграция и непрерывная доставка. Она помогает свести к минимуму ошибки, повысить темпы сборки и качество разрабатываемого продукта. [1, С. 31]
CI/CD — одна из практик DevOps, подразумевающая непрерывную интеграцию и доставку. Этот набор принципов предназначен для повышения удобства, частоты и надежности развертывания изменений программного обеспечения или продукта. CI/CD относится к agile-практикам и позволяет разработчикам уделять внимание реализации бизнес-требований, качеству кода и безопасности продукта. [2, С. 184]
Цели CI/CD:
- обеспечение последовательного и автоматизированного способа сборки, упаковки и тестирования продуктов или приложений;
- автоматизация развертывания в разных окружениях;
- сведение к минимуму ошибок и проблем.
Принципы CI/CD:
- Разделение ответственности. Каждый из участников процесса делит ответственность за те или иные этапы жизненного цикла продукта. Проектируется бизнес-логистика, внедряются сквозные функции, проводятся приемочные тесты и организуется логистика кода.
- Снижение рисков. Каждая команда, участвующая в разработке продукта, стремится к снижению рисков — контролируется корректность бизнес-логистики, проверяется пользовательский опыт, улучшается хранение и обработка данных и прочее.
- Сокращение цикла обратной связи. Разработчик и клиент должны стремиться к увеличению скорости внесения изменений и согласования правок. Сборку и тестирование кода можно автоматизировать. А для ситуаций, когда требуется участие человека, можно минимизировать число информационных посредников.
- Реализация среды. У разработчиков должно быть общее рабочее пространство с основной и вспомогательными ветками для контроля версий и качества, приемлемости, отказоустойчивости и других критериев. [2, стр 185].
- Главной целью методологии непрерывного развертывания является автоматизация тестов. Ручные тесты обходятся недешево, особенно когда тестировать приходится часто. Каждый тест должен выполняться и анализироваться человеком. Автоматизированные тесты, с другой стороны, должны быть автоматизированы только один раз. Последующие запуски автоматизированных тестов практически ничего не стоят. Благодаря методологии непрерывного развертывания приложения часто развертываются и, соответственно, часто тестируются. Поэтому тестирование приходится автоматизировать, иначе его стоимость будет слишком высока. [3, С. 213].
Проблемы ручного развертывания
Со временем технологии развертывания все больше автоматизируются. В идеале при ручном развертывании ПО в средах разработки и тестирования и в рабочей среде должны решаться две задачи: первая - выбор версии и предопределенной среды, вторая - щелчок на кнопке ‘‘Установить’’. Выпуск пакета ПО должен быть одним автоматизированным процессом, создающим инсталляторы.
В то же время при ручном развертывании документация предполагает определенный уровень знаний читателя и часто представляет собой не более чем ‘‘записную книжку’’, в которую разработчик записывает отдельные важные сведения. Другим людям тяжело читать такой ‘‘конспект’’.
СПИСОК ЛИТЕРАТУРЫ:
Джез Хамбл, Дейвид Фарли АВТОМАТИЗАЦИЯ ПРОЦЕССОВ СБОРКИ, ТЕСТИРОВАНИЯ И ВНЕДРЕНИЯ НОВЫХ ВЕРСИЙ ПРОГРАММ // Вильямс, 2011. 433с.
Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях | Хамбл Джез, Ким Джин. // Mann 2018. 507с.
Continuous delivery. Практика непрерывных апдейтов | Вольф Эберхард 2018. 312 с.
Nurtdinov E.E.
2nd year Master student, Department of Automated Control Systems
Ufa State Aviation Technical University
(Ufa, Russia)
CONTINUOUS SOFTWARE DEPLOYMENT
Abstract: the article is devoted to the process of automated assembly, testing and deployment of programs.
It describes the need for an approach that uses automated pipelines to deliver changes to server loops.
Keywords: pipeline, testing, automation, deployment, application delivery.
Номер журнала Вестник науки №5 (50) том 2
Ссылка для цитирования:
Нуртдинов Э.Э. НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО // Вестник науки №5 (50) том 2. С. 103 - 108. 2022 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/5594 (дата обращения: 03.05.2024 г.)
Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2022. 16+
*